package tlias.controller;

import tlias.pojo.Dept;
import tlias.pojo.Result;
import tlias.service.DeptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

//下面这个注解是我门再用log.info输出日志的时候，必须要加上的
@Slf4j
//这里的注解，是为了处理从网页来的请求，一有请求，就会走到这里
@RestController
public class DeptController {

    @Autowired
    private DeptService deptService;

    //查询部门数据的方法
    //这里的mapping是为了标注路径，网页请求路径（从前端代码获得）
    @GetMapping ("/depts" )//后面的这个method = RequestMethod.GET，也可以把前面的请求路径直接改成getmapping
    public Result list(){
        log.info("查询全部的部门数据");

        //调用service查询部门数据(这里是用一个集合来接收）
        List<Dept> deptList = deptService.list();

        return Result.success(deptList);
    }

    //删除部门数据的方法
    @DeleteMapping("/depts/{id}")
    public Result delete(@PathVariable Integer id){
        log.info("根据id删除部门：{}",id);

        //调用service来删除部门
        deptService.delete(id);
        return Result.success();
    }

    //添加部门数据的方法
    @PostMapping("/depts")
    public Result add(@RequestBody Dept dept){
        log.info("新增部门：{}",dept);

        //调用service当中的方法来完成新增部门数据
        deptService.add(dept);
        return Result.success();
    }

    //根据id查询部门
    @GetMapping("/depts/{id}")
    public Result search(@PathVariable Integer id){
        log.info("查询部门id：{}",id);

        //调用service里面的方法
        Dept deptinfo = deptService.search(id);
        return Result.success(deptinfo);
    }


}
